package com.weiqiao.mall.repository;

import com.weiqiao.base.dao.IBaseMongoDao;
import com.weiqiao.mall.domain.FreightEntity;
import org.bson.Document;
import org.bson.conversions.Bson;

import java.util.List;


/**
 * 订单管理 持久化层 接口 继承IBaseMongoDao
 *
 * @author yjy
 */
public interface IFreightRepository extends IBaseMongoDao {

    /**
     * 运费模板信息
     *
     * @param filter 查询条件
     */
    List<String> getFreight(Bson filter);

    /**
     * 商铺信息
     *
     * @param bson 查询条件
     */
    List<String> getFreightByFilterSortSkipLimt(int company_id, Bson bson, Bson sort, int skip, int pageSize);


    List<String> getFreightByFilter(int company_id, Bson bson, Bson sort);


    /**
     * 更新运费模板信息 新增 修改
     *
     * @param filter 查询条件
     * @param json   更新内容
     */
    boolean updateFreight(Bson filter, String json);

    /**
     * 新增
     *
     * @param freight
     */
    boolean insertFreight(FreightEntity freight);

    /**
     * 更新运费模板信息 修改
     *
     * @param filter 查询条件
     * @param doc    更新内容
     */
    boolean updateFreight(Bson filter, Document doc);

    /**
     * 更新运费模板信息 修改
     *
     * @param bson 查询条件
     * @param bson 更新内容
     */
    boolean updateFreightByBson(Bson filter, Bson bson);

    /**
     * 获取单个运费模板
     */
    String getOne(Bson filter);

    /**
     * 获取多个运费模板
     * s
     */
    List<String> getList(Bson filter);

    /**
     * 修改单个运费模板
     */
    boolean updateOne(Bson filter, Document doc, boolean bool);

    /**
     * 统计运费模板个数
     */
    int countShop(Bson bson);

    /**
     * 共用方法：查询内部list实体(服务，专题，意见反馈,店铺装修)
     *
     * @param doclist 查询条件
     */
    public List<String> queryChildEntityList(List<Document> doclist);


}
